home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).zip / Franz PD Disk #067 (1990-04)(Amiga User Group Deutschland e.V.).adf / Include / Copper.i < prev    next >
Text File  |  1989-07-02  |  2KB  |  60 lines

  1.  
  2. {
  3.     Copper.i
  4.  
  5.     This file contains definitions for the various Copper
  6.     structures.
  7. }
  8.  
  9. Const
  10.     COPPER_MOVE = 0;        { pseude opcode for move #XXXX,dir }
  11.     COPPER_WAIT = 1;        { pseudo opcode for wait y,x }
  12.     CPRNXTBUF    = 2;        { continue processing with next buffer }
  13.     CPR_NT_LOF    = $8000;    { copper instruction only for short frames }
  14.     CPR_NT_SHT    = $4000;    { copper instruction only for long frames }
  15.  
  16. Type
  17.     CopIns = Record
  18.     OpCode    : Short;
  19.     VWaitPos: Short;
  20.     VDest    : Short; { Since PCQ doesn't have variant records, }
  21.     end;         { this is the best we can do. }
  22.     CopInsPtr = ^CopIns;
  23.  
  24. { structure of cprlist that points to list that hardware actually executes }
  25.  
  26.     cprlist = Record
  27.     Next    : ^cprlist;
  28.     start    : Address;        { start of copper list }
  29.     MaxCount: Short;        { number of long instructions }
  30.     end;
  31.     cprlistPtr = ^cprlist;
  32.  
  33.     CopList = Record
  34.     Next    : ^CopList;    { next block for this copper list }
  35.     _CopList: ^CopList;    { system use }
  36.     _ViewPort : Address;    { system use }
  37.     CopIns    : CopInsPtr;    { start of this block }
  38.     CopPtr    : CopInsPtr;    { intermediate ptr }
  39.     CopLStart : Address;    { mrgcop fills this in for Long Frame}
  40.     CopSStart : Address;    { mrgcop fills this in for Short Frame}
  41.     Count    : Short;    { intermediate counter }
  42.     MaxCount : Short;    { max # of copins for this block }
  43.     DyOffset : Short;    { offset this copper list vertical waits }
  44.     end;
  45.     CopListPtr = ^CopList;
  46.  
  47.     UCopList = Record
  48.     Next    : ^UCopList;
  49.     FirstCopList    : CopListPtr; { head node of this copper list }
  50.     CopList    : CopListPtr;       { node in use }
  51.     end;
  52.     UCopListPtr = ^UCopList;
  53.  
  54.     copinit = record
  55.     diagstrt    : Array [0..3] of Short; { copper list for first bitplane }
  56.     sprstrtup    : Array [0..(2*8*2)+2+(2*2)+1] of Short;
  57.     sprstop        : Array [0..1] of Short;
  58.     end;
  59.     CopInitPtr = ^copinit;
  60.